package org.gap.web.jsf;

import java.util.Calendar;
import java.util.List;

import org.gap.dao.AdressesTiersDAO;
import org.gap.dao.UtilisateursDAO;

import org.gap.domain.AdressesTiers;
import org.gap.domain.Utilisateurs;

import org.gap.service.AdressesTiersService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import org.springframework.transaction.annotation.Transactional;

/**
 * Spring Component that handles CRUD requests for AdressesTiers entities
 * 
 */
@Scope("session")
@Component("AdressesTiersComponent")
public class AdressesTiersComponentImpl implements AdressesTiersComponent {

	/**
	 * Data type variable that provides CRUD operations for AdressesTiers entities
	 * 
	 */
	private AdressesTiers adressestiers;

	/**
	 * DAO injected by Spring that manages Utilisateurs entities
	 * 
	 */
	private Utilisateurs utilisateursbyadtusermodification;

	/**
	 * DAO injected by Spring that manages Utilisateurs entities
	 * 
	 */
	private Utilisateurs utilisateursbyadtusercreation;

	/**
	 * DAO injected by Spring that manages AdressesTiers entities
	 * 
	 */
	@Autowired
	private AdressesTiersDAO adressesTiersDAO;

	/**
	 * DAO injected by Spring that manages Utilisateurs entities
	 * 
	 */
	@Autowired
	private UtilisateursDAO utilisateursDAO;

	/**
	 * Service injected by Spring that provides CRUD operations for AdressesTiers entities
	 * 
	 */
	@Autowired
	private AdressesTiersService adressesTiersService;

	/** 
	 */
	public AdressesTiersComponentImpl() {
	}

	/**
	 * Getter for variable AdressesTiers
	 * 
	 */
	@Transactional
	public Utilisateurs getUtilisateursbyadtusermodification() {
		return utilisateursbyadtusermodification;
	}

	/**
	 * Edit an existing AdressesTiers entity
	 * 
	 */
	@Transactional
	public String editAdressesTiers(Integer adtAdresseKey, Integer adtTiersKey, String adtTypeAdresseKey, String adtEtatAffectationKey, Calendar adtFinAffectationKey) {
		adressestiers = adressesTiersDAO.findAdressesTiersByPrimaryKey(adtAdresseKey, adtTiersKey, adtTypeAdresseKey, adtEtatAffectationKey, adtFinAffectationKey);

		return "/jsf/adressestiers/editAdressesTiers.xhtml";
	}

	/**
	 * Getter for variable AdressesTiers
	 * 
	 */
	@Transactional
	public AdressesTiers getAdressestiers() {
		return adressestiers;
	}

	/**
	 * Select the child Utilisateurs entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteAdressesTiersUtilisateursByAdtUserCreation(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusercreation_usrUser) {
		utilisateursbyadtusercreation = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateursbyadtusercreation_usrUser);

		return "/jsf/adressestiers/utilisateursbyadtusercreation/deleteUtilisateursByAdtUserCreation.xhtml";
	}

	/**
	 * Delete an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String deleteAdressesTiersUtilisateursByAdtUserModification(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusermodification_usrUser) {
		adressestiers = adressesTiersService.deleteAdressesTiersUtilisateursByAdtUserModification(adressestiers_adtAdresse, adressestiers_adtTiers, adressestiers_adtTypeAdresse, adressestiers_adtEtatAffectation, adressestiers_adtFinAffectation, related_utilisateursbyadtusermodification_usrUser);

		return "/jsf/adressestiers/viewAdressesTiers.xhtml";
	}

	/**
	 * Show all AdressesTiers entities
	 * 
	 */
	@Transactional
	public List<AdressesTiers> listAdressesTierss() {
		return new java.util.ArrayList<AdressesTiers>(adressesTiersService.loadAdressesTierss());
	}

	/**
	 * Delete an existing AdressesTiers entity
	 * 
	 */
	@Transactional
	public String deleteAdressesTiers(Integer adtAdresseKey, Integer adtTiersKey, String adtTypeAdresseKey, String adtEtatAffectationKey, Calendar adtFinAffectationKey) {
		AdressesTiers adressestiers = adressesTiersDAO.findAdressesTiersByPrimaryKey(adtAdresseKey, adtTiersKey, adtTypeAdresseKey, adtEtatAffectationKey, adtFinAffectationKey);
		adressesTiersService.deleteAdressesTiers(adressestiers);
		return "/jsf/adressestiers/listAdressesTierss.xhtml";
	}

	/**
	 * Edit an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String editAdressesTiersUtilisateursByAdtUserCreation(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusercreation_usrUser) {
		utilisateursbyadtusercreation = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateursbyadtusercreation_usrUser, -1, -1);
		return "/jsf/adressestiers/utilisateursbyadtusercreation/editUtilisateursByAdtUserCreation.xhtml";
	}

	/**
	 * Select an existing AdressesTiers entity
	 * 
	 */
	@Transactional
	public String selectAdressesTiers(Integer adtAdresseKey, Integer adtTiersKey, String adtTypeAdresseKey, String adtEtatAffectationKey, Calendar adtFinAffectationKey) {
		adressestiers = adressesTiersDAO.findAdressesTiersByPrimaryKey(adtAdresseKey, adtTiersKey, adtTypeAdresseKey, adtEtatAffectationKey, adtFinAffectationKey);

		return "/jsf/adressestiers/viewAdressesTiers.xhtml";
	}

	/**
	 * View an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String selectAdressesTiersUtilisateursByAdtUserModification(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusermodification_usrUser) {
		utilisateursbyadtusermodification = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateursbyadtusermodification_usrUser, -1, -1);
		return "/jsf/adressestiers/utilisateursbyadtusermodification/viewUtilisateursByAdtUserModification.xhtml";
	}

	/**
	 * Getter for variable AdressesTiers
	 * 
	 */
	@Transactional
	public Utilisateurs getUtilisateursbyadtusercreation() {
		return utilisateursbyadtusercreation;
	}

	/**
	 * Get Utilisateurs entity by AdressesTiers
	 * 
	 */
	@Transactional
	public Utilisateurs getAdressesTiersUtilisateursByAdtUserCreation(Integer adtAdresseKey, Integer adtTiersKey, String adtTypeAdresseKey, String adtEtatAffectationKey, Calendar adtFinAffectationKey) {
		return adressesTiersDAO.findAdressesTiersByPrimaryKey(adtAdresseKey, adtTiersKey, adtTypeAdresseKey, adtEtatAffectationKey, adtFinAffectationKey).getUtilisateursByAdtUserCreation();
	}

	/**
	 * Select the child Utilisateurs entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteAdressesTiersUtilisateursByAdtUserModification(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusermodification_usrUser) {
		utilisateursbyadtusermodification = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateursbyadtusermodification_usrUser);

		return "/jsf/adressestiers/utilisateursbyadtusermodification/deleteUtilisateursByAdtUserModification.xhtml";
	}

	/**
	 * View an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String selectAdressesTiersUtilisateursByAdtUserCreation(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusercreation_usrUser) {
		utilisateursbyadtusercreation = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateursbyadtusercreation_usrUser, -1, -1);
		return "/jsf/adressestiers/utilisateursbyadtusercreation/viewUtilisateursByAdtUserCreation.xhtml";
	}

	/**
	 * Select the AdressesTiers entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteAdressesTiers(Integer adtAdresseKey, Integer adtTiersKey, String adtTypeAdresseKey, String adtEtatAffectationKey, Calendar adtFinAffectationKey) {
		adressestiers = adressesTiersDAO.findAdressesTiersByPrimaryKey(adtAdresseKey, adtTiersKey, adtTypeAdresseKey, adtEtatAffectationKey, adtFinAffectationKey);

		return "/jsf/adressestiers/deleteAdressesTiers.xhtml";
	}

	/**
	 * Edit an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String editAdressesTiersUtilisateursByAdtUserModification(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusermodification_usrUser) {
		utilisateursbyadtusermodification = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateursbyadtusermodification_usrUser, -1, -1);
		return "/jsf/adressestiers/utilisateursbyadtusermodification/editUtilisateursByAdtUserModification.xhtml";
	}

	/**
	 * Create a new Utilisateurs entity
	 * 
	 */
	@Transactional
	public String newAdressesTiersUtilisateursByAdtUserModification(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation) {
		utilisateursbyadtusermodification = new Utilisateurs();

		return "/jsf/adressestiers/utilisateursbyadtusermodification/createUtilisateursByAdtUserModification.xhtml";
	}

	/**
	 * Save an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String saveAdressesTiersUtilisateursByAdtUserCreation(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, Utilisateurs utilisateurs) {
		adressestiers = adressesTiersService.saveAdressesTiersUtilisateursByAdtUserCreation(adressestiers_adtAdresse, adressestiers_adtTiers, adressestiers_adtTypeAdresse, adressestiers_adtEtatAffectation, adressestiers_adtFinAffectation, utilisateurs);

		return "/jsf/adressestiers/viewAdressesTiers.xhtml";
	}

	/**
	 * Save an existing AdressesTiers entity
	 * 
	 */
	@Transactional
	public String saveAdressesTiers(AdressesTiers adressestiers) {
		adressesTiersService.saveAdressesTiers(adressestiers);
		return "/jsf/adressestiers/listAdressesTierss.xhtml";
	}

	/**
	 * Get Utilisateurs entity by AdressesTiers
	 * 
	 */
	@Transactional
	public Utilisateurs getAdressesTiersUtilisateursByAdtUserModification(Integer adtAdresseKey, Integer adtTiersKey, String adtTypeAdresseKey, String adtEtatAffectationKey, Calendar adtFinAffectationKey) {
		return adressesTiersDAO.findAdressesTiersByPrimaryKey(adtAdresseKey, adtTiersKey, adtTypeAdresseKey, adtEtatAffectationKey, adtFinAffectationKey).getUtilisateursByAdtUserModification();
	}

	/**
	 * Create a new AdressesTiers entity
	 * 
	 */
	@Transactional
	public String newAdressesTiers() {
		adressestiers = new AdressesTiers();

		return "/jsf/adressestiers/createAdressesTiers.xhtml";
	}

	/**
	 * Save an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String saveAdressesTiersUtilisateursByAdtUserModification(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, Utilisateurs utilisateurs) {
		adressestiers = adressesTiersService.saveAdressesTiersUtilisateursByAdtUserModification(adressestiers_adtAdresse, adressestiers_adtTiers, adressestiers_adtTypeAdresse, adressestiers_adtEtatAffectation, adressestiers_adtFinAffectation, utilisateurs);

		return "/jsf/adressestiers/viewAdressesTiers.xhtml";
	}

	/**
	 * Create a new Utilisateurs entity
	 * 
	 */
	@Transactional
	public String newAdressesTiersUtilisateursByAdtUserCreation(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation) {
		utilisateursbyadtusercreation = new Utilisateurs();

		return "/jsf/adressestiers/utilisateursbyadtusercreation/createUtilisateursByAdtUserCreation.xhtml";
	}

	/**
	 * Delete an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String deleteAdressesTiersUtilisateursByAdtUserCreation(Integer adressestiers_adtAdresse, Integer adressestiers_adtTiers, String adressestiers_adtTypeAdresse, String adressestiers_adtEtatAffectation, Calendar adressestiers_adtFinAffectation, String related_utilisateursbyadtusercreation_usrUser) {
		adressestiers = adressesTiersService.deleteAdressesTiersUtilisateursByAdtUserCreation(adressestiers_adtAdresse, adressestiers_adtTiers, adressestiers_adtTypeAdresse, adressestiers_adtEtatAffectation, adressestiers_adtFinAffectation, related_utilisateursbyadtusercreation_usrUser);

		return "/jsf/adressestiers/viewAdressesTiers.xhtml";
	}

}
